package Tests;

import java.net.MalformedURLException;
import java.net.URL;
import Reproductor.Almacen;
import Reproductor.Cancion;
import XML.CargadoXML;
import XML.GuardadoXML;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

public class TestGuardarYCargar extends TestCase{
	
	private Almacen bibliotecaAntes;
	private Almacen bibliotecaDespues;
	private Cancion cancion1;
	private Cancion cancion2;
	private Cancion cancion3;
	private Cancion cancion4;
	private Cancion cancion5;
	
	public TestGuardarYCargar (String name){
		super (name);
	}
	
	protected void setUp(){
		/*
		URL aURL=null;
		try {
			aURL = new URL("http://www.yahoo.com/");
		} catch (MalformedURLException e1) {
			e1.printStackTrace();
		}
		*/
		// Constructora: S nombre, S artista, S album, S formato, S numero, URL d, int duracion
		cancion1=new Cancion("a","a","a","a","1",0,"C:/hlocal/m.mp3");
		cancion2=new Cancion("b","b","b","b","2",0,"C:/hlocal/m.mp3");
		cancion3=new Cancion("c","c","c","c","3",0,"C:/hlocal/m.mp3");
		cancion4=new Cancion("d","d","d","d","4",0,"C:/hlocal/m.mp3");
		cancion5=new Cancion("e","e","e","e","5",0,"C:/hlocal/m.mp3");
		
		bibliotecaAntes=new Almacen();
		bibliotecaAntes.anadirBiblioteca(cancion1);
		bibliotecaAntes.anadirBiblioteca(cancion2);
		bibliotecaAntes.anadirBiblioteca(cancion3);
		bibliotecaAntes.anadirBiblioteca(cancion4);
		bibliotecaAntes.anadirBiblioteca(cancion5);
		bibliotecaDespues=new Almacen();
	}
	
	public void testGuardar(){
		GuardadoXML.guardarBiblioteca(bibliotecaAntes, "fprueba");
		bibliotecaDespues.setBiblioteca(CargadoXML.cargarBiblioteca("fprueba"));
		boolean iguales=false;
		
		for (int i=0; i<bibliotecaAntes.listarBiblioteca().size(); i++){
			iguales=bibliotecaAntes.listarBiblioteca().get(i).equals(bibliotecaDespues.listarBiblioteca().get(i));
			if (iguales==false) break;
		}
		assertEquals(true, iguales);
		bibliotecaDespues.listarBiblioteca().clear();
	}

	public void testCargar(){
		bibliotecaDespues.setBiblioteca(CargadoXML.cargarBiblioteca("fprueba"));
		boolean iguales=false;
		
		for (int i=0; i<bibliotecaAntes.listarBiblioteca().size(); i++){
			iguales=bibliotecaAntes.listarBiblioteca().get(i).equals(bibliotecaDespues.listarBiblioteca().get(i));
			if (iguales==false) break;
		}
		assertEquals(true, iguales);
	}
	public static Test suite() {
		 TestSuite suite = new TestSuite();
         suite.addTest(new TestGuardarYCargar("testGuardar"));
         suite.addTest(new TestGuardarYCargar("testCargar"));
         return suite;
    }

	protected void tearDown(){
		cancion1=null;
		cancion2=null;
		cancion3=null;
		cancion4=null;
		cancion5=null;
		bibliotecaAntes=null;
		bibliotecaDespues=null;
	}

}
